#include <iostream>
#include <unsupported/Eigen/MatrixFunctions>

using namespace Eigen;

int
main()
{
	const double pi = std::acos(-1.0);

	MatrixXd A(2, 2);
	A << cos(pi / 3), -sin(pi / 3), sin(pi / 3), cos(pi / 3);
	std::cout << "The matrix A is:\n" << A << "\n\n";
	std::cout << "The matrix square root of A is:\n" << A.sqrt() << "\n\n";
	std::cout << "The square of the last matrix is:\n" << A.sqrt() * A.sqrt() << "\n";
}
